{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "0af1b20e",
   "metadata": {},
   "source": [
    "<center><font size=5>姓名：冉成林 学号：20201120466 专业：电子科学与技术</font></center>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5a4eae31",
   "metadata": {},
   "source": [
    "  "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "44419f65",
   "metadata": {},
   "source": [
    "<center><font size=6>Chapter 3.Interpolation</font></center>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "91e480f6",
   "metadata": {},
   "source": [
    "<div align=center> <img src=\"https://pic2.zhimg.com/80/v2-deabe0ea2a2c4b76d514847c6cb16451_720w.jpg\" width=\"800\"></div>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e2767257",
   "metadata": {},
   "source": [
    "  "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0a5f82c1",
   "metadata": {},
   "source": [
    "  "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "866fc685",
   "metadata": {},
   "source": [
    "<center><font size=4>日期：2022.4.24</font></center>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "eb314bed",
   "metadata": {},
   "source": [
    "## 3.1 Lagrange interpolaio\n",
    "拉格朗日插值的基本公式为：\n",
    "$$P_{n-1}(x)=a_1L_1(x)+a_2L_2(x)+......+a_nL_n(x)$$\n",
    "其中：\n",
    "$$a_i=y_i$$\n",
    "或者：\n",
    "$$L_i(x)=\\frac{x-x_1}{x_i-x_1}\\frac{x-x_2}{x_i-x_2}\\frac{..}{..}\\frac{x-x_{i-1}}{x_i-x_{i-1}}\\frac{x-x_{i-1}}{x_i-x_{i-1}}\\frac{..}{..}\\frac{x-x_n}{x_i-x_n}$$"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9e52d61d",
   "metadata": {},
   "source": [
    "从$L_i(x)$的表达式可以看出，其最高次指数为$n-1$，且不存在$\\frac{x-x_i}{x_i-x_i}$项，避免除0错误。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "61f6b27d",
   "metadata": {},
   "source": [
    "用python进行拉格朗日插值的核心在于用两个循环分别计算$P_{n-1}(x) = \\sum_{i=1}^{n}a_iL_i(x)$和$L_i(x)=\\prod_{j \\neq i}^{n}\\frac{x-x_j}{x_i-x_j}$。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8776186d",
   "metadata": {},
   "source": [
    "## python function for lagrange interpolation"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bc0e04ce",
   "metadata": {},
   "source": [
    "## Step 1.写出拉格朗日插值的Python函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "45cffa05",
   "metadata": {},
   "outputs": [],
   "source": [
    "def interplap(x,xlist,ylist):\n",
    "    xlist=np.array(xlist)\n",
    "    ylist=np.array(ylist)\n",
    "    y=0\n",
    "    for i in range(xlist.size):\n",
    "        ai=ylist[i]\n",
    "        li=1\n",
    "        for j in range(xlist.size):\n",
    "            if i!=j:\n",
    "                li=li*(x-xlist[j])/(xlist[i]-xlist[j])\n",
    "        y=y+ai*li\n",
    "    return y"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "80882245",
   "metadata": {},
   "source": [
    "## Step 2.给出插值信息"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "3b7bbdad",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "3580d370",
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "94446eba",
   "metadata": {},
   "outputs": [],
   "source": [
    "xlist=[0,1,2.5,3,5]\n",
    "ylist=[1,2,3,1,3]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "91facfda",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 0, 'x')"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(xlist,ylist,c='yellow',edgecolor='blue',s=500,marker='*')\n",
    "plt.xlabel(\"x\",fontsize=20)\n",
    "plt.xlabel(\"x\",fontsize=20)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bf91b1c3",
   "metadata": {},
   "source": [
    "## Step 3.插值计算"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "3f82b89e",
   "metadata": {},
   "outputs": [],
   "source": [
    "xilist=np.arange(0,5.1,0.1)\n",
    "yilist=[interplap(x,xlist,ylist) for x in xilist]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "81607d9b",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'Y')"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(xilist,yilist,'b-')\n",
    "plt.scatter(xlist,ylist,c='yellow',edgecolor='blue',s=500,marker='*')\n",
    "plt.xlabel(\"X\", fontsize = 20)\n",
    "plt.ylabel(\"Y\", fontsize = 20)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6bce4f6e",
   "metadata": {},
   "source": [
    "## Step 4.sin函数的插值"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1fbb8160",
   "metadata": {},
   "source": [
    "## interpolation for sin(x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 119,
   "id": "5e243ec8",
   "metadata": {},
   "outputs": [],
   "source": [
    "xilist=np.arange(0,np.pi,0.2)\n",
    "yilist=np.sin(xilist)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 120,
   "id": "6cf89836",
   "metadata": {},
   "outputs": [],
   "source": [
    "xlist=np.arange(0,np.pi,0.1)\n",
    "ylist=[interplap(x,xilist,yilist) for x in xlist]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 121,
   "id": "7e80f0c7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'Y')"
      ]
     },
     "execution_count": 121,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(xlist,ylist,'g-')\n",
    "plt.scatter(xilist,yilist,c='yellow',edgecolor='green',s=100)\n",
    "plt.xlabel(\"X\", fontsize = 20)\n",
    "plt.ylabel(\"Y\", fontsize = 20)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "62a9d0a6",
   "metadata": {},
   "source": [
    "## interpolation for sin(x)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d7ea5fd0",
   "metadata": {},
   "source": [
    "## Step 1.插值的推导"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cbf37187",
   "metadata": {},
   "source": [
    "拉格朗日插值的基本公式为：\n",
    "$$P_{n-1}(x)=a_1L_1(x)+a_2L_2(x)+......+a_nL_n(x)$$\n",
    "其中：\n",
    "$$a_i=y_i$$\n",
    "或者：\n",
    "$$L_i(x)=\\frac{x-x_1}{x_i-x_1}\\frac{x-x_2}{x_i-x_2}\\frac{..}{..}\\frac{x-x_{i-1}}{x_i-x_{i-1}}\\frac{x-x_{i-1}}{x_i-x_{i-1}}\\frac{..}{..}\\frac{x-x_n}{x_i-x_n}$$\n",
    "以cos(x)为函数进行插值：\n",
    "$$取x的范围为：0\\le x\\le \\pi （步进值为0.2）$$\n",
    "$a_i的值为：$\n",
    "$$a_i=y_i=cos(xi)$$\n",
    "$L_i(x)的值为:$\n",
    "$$L_i(x)=\\frac{x-x_1}{x_i-x_1}\\frac{x-x_2}{x_i-x_2}\\frac{..}{..}\\frac{x-x_{i-1}}{x_i-x_{i-1}}\\frac{x-x_{i-1}}{x_i-x_{i-1}}\\frac{..}{..}\\frac{x-x_n}{x_i-x_n}$$"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f1a91995",
   "metadata": {},
   "source": [
    "## Step 2.拉格朗日插值的Python函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 122,
   "id": "2ca9dc3f",
   "metadata": {},
   "outputs": [],
   "source": [
    "def interplap1(x,xlist,ylist):\n",
    "    xlist=np.array(xlist)\n",
    "    ylist=np.array(ylist)\n",
    "    y=0\n",
    "    for i in range(xlist.size):\n",
    "        ai=ylist[i]\n",
    "        li=1\n",
    "        for j in range(xlist.size):\n",
    "            if i!=j:\n",
    "                li=li*(x-xlist[j])/(xlist[i]-xlist[j])\n",
    "        y=y+ai*li\n",
    "    return y"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "02cc7739",
   "metadata": {},
   "source": [
    "## Step 3.插值计算"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 123,
   "id": "7d41bca3",
   "metadata": {},
   "outputs": [],
   "source": [
    "xlist=np.arange(0,np.pi,0.2)\n",
    "ylist=np.cos(xlist)\n",
    "ylist=[interplap(x,xlist,ylist) for x in xlist]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 125,
   "id": "108a8fa5",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 0, 'x')"
      ]
     },
     "execution_count": 125,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(xlist,ylist,c='yellow',edgecolor='green',s=100)\n",
    "plt.xlabel(\"x\",fontsize=20)\n",
    "plt.xlabel(\"x\",fontsize=20)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5a2e7d74",
   "metadata": {},
   "source": [
    "## Step 4.插值验证"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 126,
   "id": "ad4cd8b1",
   "metadata": {},
   "outputs": [],
   "source": [
    "xilist=np.arange(0,np.pi,0.1)\n",
    "yilist=np.cos(xlist)\n",
    "yilist=[interplap(x,xlist,ylist) for x in xilist]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 127,
   "id": "c2d22d17",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'Y')"
      ]
     },
     "execution_count": 127,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZkAAAEPCAYAAACQmrmQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAvq0lEQVR4nO3deXgUZbr+8e+TBQibgEZElEVAFAHZZDm4o0KQVVEBAREwoOLCzzlnZMZxRs/AeGbcd5ag7IgLiwqoqAgKKHsIokJUBAFZohC2kIT390c3EmIHEkinqpP7c111pbvqrc5TU05uqrqqHnPOISIiEg5RXhcgIiLFl0JGRETCRiEjIiJho5AREZGwUciIiEjYxHhdgN+cddZZrlatWl6XISISUVasWLHLORefe75CJpdatWqxfPlyr8sQEYkoZrYp1HydLhMRkbBRyIiISNgoZEREJGwUMqcpNS2VYfPuoeqTFYl+PIqqT1Zk2Lx7SE1L9bo0ERHPKWROw9wNc2md1Ji42LEsHpBOxiOOxQPSiYsdS+ukxszdMNfrEkVEPOX7kDGzcWa2w8xS8lhuZva8mW00s2Qza5ZjWQcz+za47OHCrCs1LZV+M3swu+cBRrbLpE4ViImCOlVgZLtMZvc8QL+ZPQp8RKMjIxEpTnwfMsDrQIcTLE8A6gWnROAVADOLBl4KLm8A9DKzBoVV1ItfPcVdzTJpc37o5W3Oh0FNM3lp2TP5/kwdGYlIceP7+2SccwvNrNYJhnQFJrhAz4KlZlbJzKoBtYCNzrnvAcxsWnDs14VR15SUSSwekPn7+/e+gxVboUJpqFAq8LNO5Uz+Z/5r9G08kAqlK1C+VHkqlKpA2diymNlxn5fzyChncB09Mup8YSZdpvVg6cBk6lSpUxibICISdr4PmXyoDmzO8X5LcF6o+a1CfYCZJRI4CqJGjRr5+qW7DuyjZqVj7+dthJeWhRp5gGajmx03p0KpClx45oXUP6s+F1YJ/Hz327e549LD+Toyerr9i/mqUUTEa8UhZCzEPHeC+X+c6dxoYDRAixYt8tXF7ayy5dn0Wzp1qgTev9gRnusA+w5D+mFIz4D1O2Hgu2V5retk0jPSST+cTnpGOj+n/8y3u79l8ebFTF07FZejrKkpUP9MuPBMuOxcuLoWXFAZzGBQs0zajpuokBGRiFEcQmYLkPPf/+cBW4FSecwvFL0b9iFp1VhGtjt2yiw6Cs4oE5gAJqyJ5c4md9Ltom55fs7BzIOk/ppK41ca8b/XwIY0+G43TF8Ho1YEC68YCJvLz4ed+9Nxzv3hdJuIiB8Vh5CZDQwNfufSCtjjnNtmZjuBemZWG/gZ6An0LqxfOrTlQ7ROGk/nC0N/+b9kM4xdFcvSgcNO+DlxsXE0PLsh8eUq0LPhsSMj5+Db3bDgx8D0USpMSgZwnP/M+VxV6yqurnk1V9e6mrpV6oYMndS0VF786immpExi14F9nFW2PL0b9mFoy4f0vY6IFAkLfF/uX2Y2FbgaOAv4Bfg7EAvgnHvVAn9dXyRwBdoB4E7n3PLguh2BZ4FoYJxzbsTJfl+LFi1cfh+QOXfDXPrN7MGgppkMapZJjTPgpz0wdmUsY1fFMqHbWyTUS8jXZw2bdw9xsccfGeXkHAx+N4bvf2tLfLlqLPhxAdv3bQegQXwDel7Sk54Ne1LvzHrH1XZXs0wGNs2kZiXY9BskrYplzMqC1SYicjJmtsI51+IP8/0eMkWtICEDgaOFl5Y9w5S1E48dLTTqy72XDSvQ0UJqWiqtkxr/4eqyo5Zshi7Tyv5+dZlzju92f8f87+cz/evpLNy0EIDm1Zpz/QXXM2rFs7zf+1C+PktE5HQpZPKpoCFTmE7nyGjL3i1MXzedqSlTWb41UP/lNaBXQ+jRAM4ud/z44fNjychO1EUEIlIoFDL55GXIQOEcGZ357/L0v3Q/H6TCup0QZXDdBXBPC+h0YeAChdQ0aDuuItv/tCfMWyQiJYFCJp+8DpnCEP14FBmPOGKiIGUHTF0LE5Nh816oUxnubwV9GsHZT0aR9Wi21+WKSDGQV8hEwmNlpIAC9/AEXjc8G0a0g+8fgOk9oGp5eGAe1HwOSkfH8MOvP3haq4gUbwqZYihwD0/scfNiouCWS+CLAfDlIKhR0TiUnUXdF+py0xs3sXDTQnRUKyKFTSFTDA1t+RBjVsayZHPo5dlHYMeBOBb2X8jDbR/ms02fcdXrV9F8dHMmJU8i+4hOoYlI4VDIFEN1qtRhQre36DKtLMPnx5KaBpnZgS/7h8+Ppcu0skzo9hZta7RlRLsRbB62mdGdRpORnUHfGX1p9Eoj3v76bR3ZiMhpU8gUUwn1Elg6MJmM7ETajqtI3Igo2o6rSEZ2IksHJh93KXTZ2LLc1fwuUu5O4e1b3wagx5s9aDm2JR+lfvR72KjXjYgUlK4uy6U4XF12urKOZDEpeRJ/X/B3ftrzE1fXupouF3Zh5OeP6AkCIhKSLmHOJ4XMMRlZGYxeMZrHPnuM3Qd3c3kNeLkjNKp6/Dg9QUBEdAmzFFjpmNLc1+o+brukO1fWjCL5F7j0VejzDnz/67Fxp9IFVERKBoWMnNRb699gXJcj/PAA/E9beGc9NHgJHlsAh7ICYwY1y2TK2ome1iki/qOQkZM62gW0Shw8cR1suA+6Xwz/+AwavhzoClrjjMA4EZGcFDJyUjmfIABQvSJMvRnm9w3c5JkwGTpPhcplynpWo4j4k0JGTirUEwQA2l0Aa4bAiGvh4x9gT8Yhnlz8JJnZoXviiEjJo5CRkzrREwRKx8A1taBCqTJcXuMK/vuj/6bpqKYs2rSoyOsUEf/xfciYWQcz+9bMNprZwyGW/7eZrQ5OKWaWbWZVgst+NLO1wWW6LvkU5ecJApNveodP7viEWT1nse/wPq58/Ur6z+zPzv07vS5fRDzk6/tkzCwa+A64HtgCLAN6Oee+zmN8Z2CYc+7a4PsfgRbOuV35/Z26TyZv+e11s//wfkYsGsGTi5+kUplKjOo0iu4Xd/ewchEJt4i8GdPM2gD/cM61D74fDuCc+1ce46cAnzrnxgTf/4hCxjPrdqyj38x+rNy2kn6X9uP5Ds9zRpkzvC5LRMIgUm/GrA7k/CZgS3DeH5hZWaAD8HaO2Q740MxWmFliXr/EzBLNbLmZLd+5U6d3CsslZ1/C0oFLefTKR5mcPJlGrzTi4+8//n25noUmUvz5PWQsxLy8Dr06A18459JyzGvrnGsGJAD3mtmVoVZ0zo12zrVwzrWIj48/vYrlOLHRsTx2zWMsHriYsrFluW7idTww9wFmrJ9B66TGxMWOZfGAdDIecSwekE5c7FhaJzVm7oa5XpcuIoXA7yGzBTg/x/vzgK15jO0JTM05wzm3NfhzBzADaBmGGiUfWlZvycrBK3mg1QM8/9Xz3PLmzTzR7gAj22VSp0rgfps6VWBku0xm9zxAv5k9dEQjUgz4PWSWAfXMrLaZlSIQJLNzDzKzM4CrgFk55pUzswpHXwM3AClFUrWEVDa2LM92eJabL+pMuVKOwe/Bo5/C4Vw90vQsNJHiw9ch45zLAoYCHwDrgenOuXVmNsTMhuQY2h340Dm3P8e8qsDnZrYG+Ap43zk3r6hql7wt2ryAz+6APo3hfxdC67GwPtdXYXoWmkjx4Oury7ygq8vCL/rxKDIeccREwcxvIPFdOJAJr3YKBA8E7sOJGxFF1qNqBS0SCSL16jIphnI+C63bRbB6CDQ/F/rOCATOwUz4aU9gnIhENoWMFLncz0I7twJ83A+GXw5jVkKbJPj3FzH0btTXwypFpDAoZKTIhXoWWkwUjGwH7/eGH36DMSuzqF2pvmc1ikjhUMhIkTvRs9AWbYol2spw0VkXc/+8+7lvzn1kZGV4XbKInCKFjHgioV4CSwcmk5GdSNtxFYkbEUXbcRXJyE5k2V0prBmyhofaPMSLy17k8tcu54dff/C6ZBE5Bbq6LBddXeYvM7+ZSf+Z/TEzXu/6Ol0v6up1SSISgq4uk4jU7aJurBq8irpV6tLtjW789eO/csQd8bosEcknhYz4Xu3Ktfn8zs8Z1HQQIz8fSfc3urM3Y6/XZYlIPihkJCKUjinN6M6jeSHhBd7/7n3aJLXRs81EIoBCRiKGmTG05VA+7Psh2/dt57Ixlx3XOkBE/EchIxHn2trXsuyuZZxb4VzaT2rPC1++wMbdG9WbRsSHFDISkS6ofAFLBi7hxgtv5P5599PwlYsoFT1GvWlEfEYhIxGrQukKPHn9k8TFxJCRnc0Xm7MoX0q9aUT8RCEjEe3lZc/wYGvjjR6wchtcNgZWbTu2XL1pRLylkJGINiVlEgObZnLrJfDFgMC8tuNg1jfHxqg3jYh3FDIS0XYd2EfNSoHXTavBsrugUVXo/ga8+FVgfo0zAuNEpOj5PmTMrIOZfWtmG83s4RDLrzazPWa2Ojg9mt91JfLl7E0DULU8fHoHdKkP982FP30IP/6m3jQiXvF1yJhZNPASkAA0AHqZWYMQQxc555oEp8cLuK5EsNy9aQDKxsLbt8J9LeGpJdB5qnHrJb08qlCkZPN1yAAtgY3Oue+dc4eBaUB+n5B4OutKhAjVmwYgOgqe6wD3t4Rvdzu+2LyMXQd2eVOkSAnm95CpDuT887ElOC+3Nma2xszmmtklBVwXM0s0s+Vmtnznzp2FUbcUkRP1pvnLx7FMSSnLXy7/C+t2rKNNUhs2pm30umSREsXvIWMh5uXuTbASqOmcuxR4AZhZgHUDM50b7Zxr4ZxrER8ff6q1ikdO1Jtm6cBkRrQbwSd3fMKvB3+lTVIblmxe4nXJIiWGr/vJmFkb4B/OufbB98MBnHP/OsE6PwItgHoFXRfUT6Y427B7AwmTE/g5/Wcm3zSZmy6+yeuSRIqNSO0nswyoZ2a1zawU0BOYnXOAmZ1jZhZ83ZLANu3Oz7pSstQ7sx5LBi6hyTlN6DG9B88tfc7rkkSKvRivCzgR51yWmQ0FPgCigXHOuXVmNiS4/FWgB3C3mWUBB4GeLnB4FnJdTzZEfCO+XDyf9PuE29+5nQc/eJDt+7Yzst1Igv9OEZFC5uvTZV7Q6bKSIftINve8fw+jV45mUNNBvNrpVaKjor0uSyRi5XW6zNdHMiLhEh0VzaudXiW+XDwjFo0g7VAak2+aTJmYMl6XJlKs+P07GZGwMTP+ee0/eab9M7yz/h06Tu6ots4ihUwhIyXeg60fZEK3CSzctJBrx1/Ljv07SE1LVRM0kUKgkBEB+l7al1k9Z/H1zq9pNqoZl41pSFzsWDVBEzlNChmRoBsvvJHXu77O1vSfiYk6xO2NMqlTRU3QRE6HQkYkhyVbFjCgaQwxUXDFa7B0y/HL1QRNpGAUMiI5TEmZxPDLs/h8AFSJg3YT4INcjztTEzSR/FPIiORwtAnaBZXh8wFQrwp0ngoz1h8boyZoIvmnkBHJIWcTtHPKw4L+0PxcuOVNmJwcmP/THjVBE8kvhYxIDrmboFUqAx/2gStqQt8ZMGYFjF0ZS+9GfT2sUiRyKGREcgjVBK1CaZjTGzrUhcT34IWv4N7LhnlXpEgEUciI5JBXE7St6XBJfAyloqPZn5nJtJRpXpcqEhEUMiK55NUELdsNJnnIOvo07sMjnz7CXz7+C3rArMiJ6SnMuegpzHIyR9wR7n7vbkavHM39Le/nmQ7PEGX695qUbHoKs0ghibIoXu30KmVjy/Lsl8+yP3M/ozqNUqsAkRB8HzJm1gF4jkDjsbHOuSdyLb8d+HPw7T7gbufcmuCyH4F0IBvICpWyIqfCzHi6/dOUL1Wefy76JwcyDzC+23hio2NPvrJICeLrkDGzaOAl4HpgC7DMzGY7577OMewH4Crn3K9mlgCMBlrlWH6Nc25XkRUtJYaZ8b/X/i/lSpVj+MfDOZR1iGk9plEqupTXpYn4ht9PJLcENjrnvnfOHQamAV1zDnDOLXbO/Rp8uxQ4r4hrlBLu4csf5rkOzzHjmxn0mN6DjKwMr0sS8Q2/h0x1IMcdC2wJzsvLQCDnc9gd8KGZrTCzxLxWMrNEM1tuZst37tx5WgVLyXR/q/t5qeNLvPvdu9w0/SYOZR3yuiQRX/B7yFiIeSEvhzOzawiEzJ9zzG7rnGsGJAD3mtmVodZ1zo12zrVwzrWIj48/3ZqlhLrnsnsY1WkUczbMoeu0rhzMPOh1SSKe83vIbAHOz/H+PGBr7kFm1hgYC3R1zu0+Ot85tzX4cwcwg8DpN5GwSWyeSFKXJD5K/YjOUztzIPOA1yWJeMrvIbMMqGdmtc2sFNATmJ1zgJnVAN4B+jrnvssxv5yZVTj6GrgBSCmyyqXEGtB0AK93e51Pf/yUG6fcyL7D+9TOWUosX19d5pzLMrOhwAcELmEe55xbZ2ZDgstfBR4FzgReNjM4dqlyVWBGcF4MMMU5N8+DzZASqN+l/YiJiqHvjL60Htuabfu+Z3DzLBYPyKRmJdj0WzpJq8bSOmk8E7q9RUK9BK9LFgkL3fGfi+74l8L0/JfP88C8B2h4NnwxACqWPn75ks3QZVpZlg5Mpk6VOt4UKVII8rrj3++ny0Qi2g+/fkP3i6L5ZhdcPxF+y3XRmdo5S3GnkBEJoykpk/jP9dm8dQus2gbXTYC0XBedqZ2zFGcKGZEwOtrOuetFMOM2WLsjcESTM2jUzlmKM4WMSBjlbOd844Uw8zZIyRU0aucsxZlCRiSMcrdzTqj3x6BRO2cpzhQyImEUqp1zzqD5ryQYvTJG7Zyl2FLIiIRRXu2cLzwTutaP5tvdULnMuVSOq+x1qSJhoZARCbO82jmfV3EISZ2T2LJ3C9dNuI60g2lelypS6HQzZi66GVOK2ryN8+g2rRsN4hswv998qsRV8bokkQLTzZgiPtWhbgdm9pzJ1zu/1hGNFDsKGREfUNBIcaWQEfEJBY0URwoZER9R0Ehxc8KQMTPdhixSxDrU7cCM22awbuc6bph4A78e/NXrkkRO2cmOZNaYWZsiqUREfpdQL4EZt81g7Y613DDpBn479JvXJYmckpOFTA1goZk9bmbRRVGQiAR0rNeRt299mzXb13DDRAWNRKaThcx/Ad8DfwUWm1nd8Jd0PDPrYGbfmtlGM3s4xHIzs+eDy5PNrFl+1xXxu04XduLtW99m9fbVtJ/Unj2H9nhdkkiBnDBknHPLgCbAaOAyYJWZJRZBXQAEj55eAhKABkAvM2uQa1gCUC84JQKvFGBdEd/rXL8zb936Fqu2raL9pPas3r6aYfPuoeqTFYl+PIqqT1Zk2Lx7SE1L9bpUkT846dVlzrmDzrm7gU7AfuAVM5tlZvXNrEaoqRDrawlsdM5975w7DEwDuuYa0xWY4AKWApXMrFo+1xWJCF3qd+HNW95k+dblXDamOVE2hsUD0sl4xLF4QDpxsWNpndSYuRvmel2qyHHyfQmzc24OcAkwj0DgfA38EGL6vhDrqw7keH4tW4Lz8jMmP+sCYGaJZrbczJbv3LnztIsWCYeGZzekbGw0zh1hyZYszi4HMVFQpwqMbJfJ7J4H6Dezh45oxFcKep9M4+BkwC/ATyGmzXmuXXAWYl7uh63lNSY/6wZmOjfaOdfCOdciPj6+gCWKFI0Xv3qKoS0d02+Br36GhMmQnnFseZvzYVDTTF5a9ox3RYrkkq+QMbNYM3sS+AiIB/4MVHfO1Q41FWJ9W4Dzc7w/D9iazzH5WVckYkxJmcTAppncdDFM6wFLt0DHKccHzaBmmUxZO9G7IkVyOWnImNklwDLg/wHfAK2cc/9xRfP45mVAPTOrbWalgJ7A7FxjZgP9gleZtQb2OOe25XNdkYix68A+alYKvO7RAKbeDEs2B4Jm3+HA/BpnBMaJ+MXJ7vh/gMAf60bAC0Bz59yaoigMwDmXBQwFPgDWA9Odc+vMbIiZDQkOm0Pge6CNwBjgnhOtW1S1ixS2s8qWZ9Nvx97fcglMORo0kwNB89OewDgRvzhhPxkzOwJsA+50zn1YZFV5SP1kxK+GzbuHuNixjGyXedz8N1Lg9negbQ1oUS0Gx2Cebv+iR1VKSXWq/WRmAI1KSsCI+NnQlg8xZmUsS3JdWnNbQ5h8E3z+Ezz/1RHubDLYmwJFQjjZzZg3O+f0GFgRH6hTpQ4Tur1Fl2llGT4/ltQ0yMyG1DRYvT2WcrGlOOLgvrn3sf/wfq/LFQH0qH+RiJJQL4GlA5PJyE6k7biKxI2Iou24imRkJ7Jq8NdM6j6JRT8totPUTgoa8YUTfidTEuk7GYl0U9dOpc+MPlxZ80re6/Ue5UqV87okKQFO9TsZEYkwvRr1YmL3iSzctJDOUztzIPOA1yVJCaaQESmGejfqzYRuE/hs02d0mtJJQSOeUciIFFO3N76d8d3G89mmz3REI55RyIgUY30a92F8t/Es+HEBN065URcDSJFTyIgUc30a92FCtwks3LSQjlM6su+wHjsjRUchI1IC3N74diZ1n8TnP31Ox8kdSc9I97okKSEUMiIlRK9GvZhy0xQWb15MwuQE9mbs9bokKQEUMiIlyG0Nb2PqzVNZumUpHSZ1UNBI2ClkREqYWy65hTd6vMGyrctoP6k9q7etZti8e6j6ZEWiH4+i6pMVGTbvHnXYlEKhkBEpgW5ucDPTe0xn2c/LuGxsc8zGsHhAOhmPOBYPSCcudiytkxozd8Ncr0uVCKeQESmhGldtTNnYaOAIi37KokocxERBnSowsl0ms3seoN/MHjqikdOikBEpoV786imGtnS8cysk/wLXTYS0g8eWtzkfBjXN5KVlz3hXpEQ834aMmVUxs4/MbEPwZ+UQY843s0/NbL2ZrQt28jy67B9m9rOZrQ5OHYt2C0T8bUrKJAY2zaRzfXjnVkjZAe0mwK4cDwYY1CyTKWsnelekRDzfhgzwMPCxc64e8HHwfW5ZwEPOuYuB1sC9ZtYgx/JnnHNNgtOc8JcsEjl2HdhHzUqB1zdeCLN6wje74OrXYXvwfs0aZwTGiZwqP4dMV2B88PV4oFvuAc65bc65lcHX6cB6oHpRFSgSyc4qW55Nvx1736EuvN8bfvgNrnodft4LP+0JjBM5VX4OmarOuW0QCBPg7BMNNrNaQFPgyxyzh5pZspmNC3W6Lce6iWa23MyW79y5sxBKF/G/3g37kLQq9rh519aGD/rAtnS48nV4anEMvRv19aZAKRY8DRkzm29mKSGmrgX8nPLA28CDzrmjd5e9AtQBmgDbgKfyWt85N9o518I51yI+Pv7UNkYkwgxt+RBjVsayZPPx8y+vAfP7wc79MGplNjfW6+5NgVIseBoyzrnrnHMNQ0yzgF/MrBpA8OeOUJ9hZrEEAmayc+6dHJ/9i3Mu2zl3BBgDtAz/FolEjjpV6jCh21t0mVaW4fNjSU2DzGxITYMZ62OJjipD+VIV6DujL9/s+sbrciVC+fl02WzgjuDrO4BZuQeYmQFJwHrn3NO5llXL8bY7kBKmOkUiVkK9BJYOTCYjO5G24yoSNyKKtuMqkpGdyPK7UvhiwBcccUe46vWrWPvLWq/LlQhkzjmvawjJzM4EpgM1gJ+AW5xzaWZ2LjDWOdfRzC4HFgFrgSPBVf/inJtjZhMJnCpzwI/A4KPf8ZxIixYt3PLlywt9e0Qi1be7vuXaCddyKOsQH/X9iGbVmnldkviQma1wzrX4w3y/hoxXFDIif5Salsq1E65lz6E9fNDnA1qd18rrksRn8goZP58uExGfqFOlDgv7L+Sssmdx3cTrWLhpodclSYRQyIhIvtSsVJPP+n/GeRXPo/2k9szZoPub5eQUMiKSb9UrVmdh/4U0iG9A12ldeSPlDa9LEp9TyIhIgcSXi+eTfp/wX+f/F73e7sXoFaO9Lkl8TCEjIgV2RpkzmHf7PDrW68jg9wbzf5//n9cliU8pZETklMTFxjHjthn0bNiThz9+mOHzh+OcIzUtVZ025XcxXhcgIpErNjqWSd0ncUbpM3jiiydI/iWZL3/+lMTmWSwekEnNSrDpt3SSVo2lddJ4JnR7i4R6CV6XLUVIISMipyU6KppXbnwFgFErRnH9BfDY1RAbHVh+tNNm5wsz6TKtB0sHJlOnSh3P6pWipdNlInLazIy4mCiurhXFR99D9zfgYObxY9Rps2RSyIhIoZiSMomxnY/w6o0wZwN0mAx7Dh0/Rp02Sx6FjIgUiqOdNge3gCk3w+LNgZ40W9OPjVGnzZJHISMihSJnp82eDQNdNr//FdokwfpgL0B12ix5FDIiUihyd9q8oQ581h8ysuDy1wJHNmNXxqrTZgmjkBGRQhGq02azarB4IJwZB9eMh5eWGfdeNsy7IqXIKWREpFDk1WnTOUioG8MRF8X+zCzmfz/f61KlCPk2ZMysipl9ZGYbgj8r5zHuRzNba2arzWx5QdcXkcKTV6fN6KjBrExcTULdBIa8P4S/ffI31MuqZPBt0zIz+zeQ5px7wsweBio75/4cYtyPQAvn3K5TWT83NS0TCZ+sI1kMeW8ISauSGNBkAKM6jyImSveEFweR2LSsKzA++Ho80K2I1xeRQhYTFcOYzmN49MpHGbd6HF2ndWX/4f1elyVh5OeQqeqc2wYQ/Hl2HuMc8KGZrTCzxFNYX0SKkJnx2DWPMarTKOZtnMc1469h+77tXpclYeLpcaqZzQfOCbHorwX4mLbOua1mdjbwkZl945wrUG/YYDglAtSoUaMgq4rIKUpsnsg55c+h19u9aDW2Fe/2epfGVRt7XZYUMk+PZJxz1znnGoaYZgG/mFk1gODPHXl8xtbgzx3ADKBlcFG+1g+uO9o518I51yI+Pr7wNlBETqhL/S4sunMRWUeyaDuuLe99957XJUkh8/PpstnAHcHXdwCzcg8ws3JmVuHoa+AGICW/64uI95pVa8ZXg76i/pn16TK1C08veVpXnhUjfg6ZJ4DrzWwDcH3wPWZ2rpnNCY6pCnxuZmuAr4D3nXPzTrS+iPhP9YrVWXjnQm66+CYe+vAhBr83mMzsTDVAKwZ8ewmzV3QJs4h3jrgj/O2TvzHy85FcWvVSNu/9jsHNsxjY9GgDNEhaFcuYlbFqgOYzkXgJs4iUMFEWxYh2I/jP9f9hzS9rKB97kDubZFKnCsREHWuANrvnAfrN7KEjmgigkBER3/l57/f0aRTNgSxoNRYW/Hj8cjVAixwKGRHxnSkpk/jH1dl8OQiqVYDrJ8KYFcePUQO0yKCQERHfOdoA7YLKsHgAtKsNie/B4HcDrQNADdAihUJGRHwnZwO0M8oEGqANvxxGr4QrXoPNe9QALVIoZETEd3I3QIuOgpHt4J1b4Ztd0Gw0PPJJtBqgRQCFjIj4TqgGaADdL4Zld0GFUjBtXTYxUWV146bPKWRExHfyaoCWmgavr45lb0YcV9S4gv8s/g83T7+ZvRl7vS5Z8qCQERFfyqsBWkZ2Il8OWstn/T/jqRueYva3s7lszGV8vfNrr0uWEHTHfy66418ksnz242fc+tat7D+8n3Fdx3HrJbd6XVKJpDv+RaRYuqrWVaxMXEnjqo257a3beHDeg2RkZXhdlgQpZEQk4lWvWJ0F/RdwX8v7eO7L52g1tpVOn/mEQkZEioVS0aV4PuF5Zveczc/pP9N8dHNeXf6qrj7zmEJGRIqVzvU7kzwkmStqXMHd799N9ze6s+vALgC1DvCAQkZEip1qFaoxr888nrrhKeZsmEPjVxozctFIWic1Ji52LIsHpJPxiGPxgHTiYsfSOqkxczfM9brsYklXl+Wiq8tEipdV21Zxy5u3kPprKrc3gnFdoVT08WOWbIYu08qydGAydarU8abQCBdxV5eZWRUz+8jMNgR/Vg4xpr6Zrc4x7TWzB4PL/mFmP+dY1rHIN0JEPNe0WlM61LmGpudEMXkttEmCb3cdP0atA8LHtyEDPAx87JyrB3wcfH8c59y3zrkmzrkmQHPgADAjx5Bnji53zs3Jvb6IlAxvrn+DN285wozb4MffAs8+e3kZHMlxIketA8LDzyHTFRgffD0e6HaS8e2AVOfcpnAWJSKR52jrgG4Xwdq7oe35cO8cuPK1wAM3Qa0DwsXPIVPVObcNIPjz7JOM7wlMzTVvqJklm9m4UKfbjjKzRDNbbmbLd+7ceXpVi4jv5GwdcG4F+KAPvNYVvt4Jl74K/1wIG9PUOiAcPA0ZM5tvZikhpq4F/JxSQBfgzRyzXwHqAE2AbcBTea3vnBvtnGvhnGsRHx9f8A0REV/L3TrADPo3gfX3QveL4G+fwlWvw7W1b/CsxuLK05Bxzl3nnGsYYpoF/GJm1QCCP3ec4KMSgJXOuV9yfPYvzrls59wRYAzQMpzbIiL+lVfrgKrlYVoP+L/rYPdBY1rK2wybN4x9h3XarLD4+XTZbOCO4Os7gFknGNuLXKfKjgZUUHcgpVCrE5GIcaLWAcPnx/KfxWWZ3uNN7m5xN89++SwNX27IBxs/8LrsYsHPIfMEcL2ZbQCuD77HzM41s9+vFDOzssHl7+Ra/99mttbMkoFrgGFFU7aI+NGJWgcsHZjMzQ1u5qUbX2LRnYuIi42jw+QO9JvRjx37T3QSRU5GN2PmopsxReRQ1iFGLhrJvz7/F3Excfzlir/wYOsHKRNTxuvSfCvibsYUEfFKmZgyPH7N46TcncI1ta9h+MfDuejFi5i6durvD9zUc9DyRyEjIpKH+mfVZ1bPWXzS7xMqx1Wm9zu9aZPUhqcWP6XnoOWTTpflotNlIhJK9pFsJiZP5M/z/8yO/Tu4thaM6QIX5LoDr6Q+B02ny0RETkN0VDT9m/Tnlou7cPn5USz9GS5+Cf7nI/jt0LFxeg7a8RQyIiIF8Ob6N3i92xG+Gwq9G8GTi6Hu8zBy0bGw0XPQjlHIiIgUwNHnoFWvGHg0zYpEaFkd/voJ1HwWhs+H0tF6DtpRChkRkQLI+Rw0gKbVYM7tsDIROtSF//sC6r4ApaKj2fSbnterkBERKYDcz0E7qmk1eKMHfDMU6p9pZGRnU/eFuvSf2Z/1O9d7UKk/KGRERAogr+egHbX7AGzdF8eCOxZw72X3Mn3ddC55+RJunn4zX/38VZ6fW1zvu1HIiIgUwMmeg9ZlWlkmdHuLK2pewbMdnmXTg5v46xV/5ZMfPqHV2FY0HdWUF758gd0Hdv/+mXM3zC22993oPplcdJ+MiORHaloqLy17hilrJ7LrwD7OKlue3o36cu9lw0LeH7M3Yy+TkyeTtCqJFdtWUCq6FN0v6k6Huh3404f38G6vg7Q5/4+/J1Luu8nrPhmFTC4KGREJtzXb1/Da6teYmDyRtINpVCwND7YK9LipHaK94vD5sWRkJ/J0+xeLvNb8Usjkk0JGRIpKRlYGZz9ZiSZVD7HoJ3DAtbWhb2NIqBvodwOBU3Ftx1Vk+5/2eFrvieQVMjFeFCMiIlA6pjT7Dmfw8R2wLR3Gr4Fxq+DOYPesFudCx7pwQx3YuT+9QJ+dmpbKi189xZSUScdO5zXsw9CWDxXpaTd98S8i4qGj992cfwY8ciWk3h+45+af10CpaPjnIrj8tcBRTt8ZfZm6dippB9NO+Jl+upBAp8ty0ekyESlKw+bdQ1zsWEa2ywy5fPcBGDArmu/S6rBz/252H9xNlEXR+rzWXFXzKpqe05Rm1ZpRu3JtoiyK1LRUWic1ZnbPA0V6IUHEnS4zs1uAfwAXAy2dcyH/8ptZB+A5IBoY65w72kGzCvAGUAv4EbjVOfdr2AsXESmAoS0fonXSeDpfmBkyFL7bDYu3lGbpwDnUqlSL5VuX8/6G95mzYQ7//uLfZLtsACqWrkiTc5qwN+NXWlXPoFypwKXVsdHHf17OB3gWxYUEvj2SMbOLgSPAKOBPoULGzKKB7wi0X94CLAN6Oee+NrN/A2nOuSfM7GGgsnPuzyf7vTqSEZGiNnfDXPrN7MGgppkMapZJjTPgpz0wdmUsY1fFMqHbWyTUS/jDeoeyDpGyI4VV21axantgWrpl6e/LS0dDw7OhViU4pzxULRf46YDh88uxasjXVC1XldIxpU97GyL26jIzW0DeIdMG+Idzrn3w/XAA59y/zOxb4Grn3DYzqwYscM7VP9nvU8iIiBcKet9NXqIeM9YMgbU7YNU2WPMLbNkLv+yHtIOh16lUphJVy1VlVKdRXFXrqlOqP+JOl+VTdSDnwx22AK2Cr6s657YBBIPm7Lw+xMwSgUSAGjVqhKlUEZG81alSh6fbv3jap7Diy1WgbGw6vRsFWhHklJEFO/bDiq1w56w4nrzhBbbv284v+39h+77tVI4LcZPOafI0ZMxsPnBOiEV/dc7Nys9HhJhX4EMz59xoYDQEjmQKur6IiF8EHuAZ+kKC0jGBq9heXhbLnU0HMLDZwLDX42nIOOeuO82P2ALk/KrsPGBr8PUvZlYtx+myHaf5u0REfO9kFxIs2QxjV8WydOCwIqkn0u+TWQbUM7PaZlYK6AnMDi6bDdwRfH0HkJ8jIxGRiJbfB3gW1Q2Zvg0ZM+tuZluANsD7ZvZBcP65ZjYHwDmXBQwFPgDWA9Odc+uCH/EEcL2ZbSBw9dkTRb0NIiJeSKiXwNKByWRkJ9J2XEXiRkTRdlxFMrITWTowOeSVauHi+6vLipquLhMRKbi8ri7z7ZGMiIhEPoWMiIiEjUJGRETCRiEjIiJhoy/+czGzncCmU1z9LGBXIZbjBW2DPxSHbYDisR3ahvyp6ZyLzz1TIVOIzGx5qKsrIom2wR+KwzZA8dgObcPp0ekyEREJG4WMiIiEjUKmcI32uoBCoG3wh+KwDVA8tkPbcBr0nYyIiISNjmRERCRsFDIiIhI2CplTYGYdzOxbM9toZg+HWG5m9nxwebKZNfOizhPJxzZcbWZ7zGx1cHrUizrzYmbjzGyHmaXksdz3+wDytR1+3w/nm9mnZrbezNaZ2QMhxvh6X+RzG/y+H8qY2Vdmtia4DY+FGOPNfnDOaSrABEQDqcAFQClgDdAg15iOwFwCnTtbA196XfcpbMPVwHte13qCbbgSaAak5LHc1/ugANvh9/1QDWgWfF0B+C4C//+Qn23w+34woHzwdSzwJdDaD/tBRzIF1xLY6Jz73jl3GJgGdM01piswwQUsBSoFu3P6RX62wdeccwuBtBMM8fs+APK1Hb7mnNvmnFsZfJ1OoK9T9VzDfL0v8rkNvhb833Zf8G1scMp9VZcn+0EhU3DVgc053m/hj/9B5meMl/JbX5vg4fdcM7ukaEorNH7fBwUREfvBzGoBTQn8KzqniNkXJ9gG8Pl+MLNoM1tNoNX8R845X+yHmHD/gmLIQszL/S+G/IzxUn7qW0ngWUT7zKwjMBOoF+7CCpHf90F+RcR+MLPywNvAg865vbkXh1jFd/viJNvg+/3gnMsGmphZJWCGmTV0zuX8rs+T/aAjmYLbApyf4/15wNZTGOOlk9bnnNt79PDbOTcHiDWzs4quxNPm932QL5GwH8wslsAf58nOuXdCDPH9vjjZNkTCfjjKOfcbsADokGuRJ/tBIVNwy4B6ZlbbzEoBPYHZucbMBvoFr+ZoDexxzm0r6kJP4KTbYGbnmJkFX7ck8N/K7iKv9NT5fR/ki9/3Q7C2JGC9c+7pPIb5el/kZxsiYD/EB49gMLM44Drgm1zDPNkPOl1WQM65LDMbCnxA4Cqtcc65dWY2JLj8VWAOgSs5NgIHgDu9qjeUfG5DD+BuM8sCDgI9XfASFT8ws6kErvg5y8y2AH8n8GVnROyDo/KxHb7eD0BboC+wNvh9AMBfgBoQMfsiP9vg9/1QDRhvZtEEAnC6c+49P/xd0mNlREQkbHS6TEREwkYhIyIiYaOQERGRsFHIiIhI2ChkREQkbBQyIiISNgoZER8ys0Fm5sxs7gnGvB8cc09R1iZSEAoZER9yzo0lcId2BzO7N/dyM7ub4KPbnXMvF3V9IvmlmzFFfMrMzgZSgHIE+p18G5x/IbCKwJ3nDZ1z272rUuTEdCQj4lPOuR3AXUBZYJKZxZhZDDApOC9RASN+p2eXifiYc26WmY0DBgBHW/5eBryexxOPRXxFp8tEfM7MKhBokV0jOGsz0DjYxVHE13S6TMTngmHyOIEnZkcDdytgJFIoZER8Ltgf5M85Zt3iVS0iBaWQEfG/fwMXAc8Bq4EBZtbZ04pE8knfyYj4mJndAMwjcCnzZQT6yi8HfiNw+fIu76oTOTkdyYj4lJlVAV4DMoE+zrkM51wK8DegKvCql/WJ5IdCRsS/XgHOBR5xziXnmP8UsAi42cz6eFKZSD7pdJmID5lZX2ACsBC4xjl3JNfy2kAykAU0cs5tKfoqRU5OISPiM2ZWg0CAGIH7YTblMW4QMAb4CGjv9H9m8SGFjIiIhI2+kxERkbBRyIiISNgoZEREJGwUMiIiEjYKGRERCRuFjIiIhI1CRkREwkYhIyIiYaOQERGRsPn/NyhJ/FdBrAkAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(xilist,yilist,'g-')\n",
    "plt.scatter(xlist,ylist,c='yellow',edgecolor='green',s=100)\n",
    "plt.xlabel(\"X\", fontsize = 20)\n",
    "plt.ylabel(\"Y\", fontsize = 20)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f64d69ea",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
